package com.tangruojie.service;

import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

/**
 * 传播行为	        当前有事务时	        当前无事务时	    场景
 * REQUIRED	        加入事务	            新建事务	        默认
 * REQUIRES_NEW	    挂起当前事务，新建	    新建事务	        独立事务需求
 * NESTED	        创建嵌套事务	        新建事务	        局部回滚
 * SUPPORTS	        加入事务	            非事务执行	    可选事务
 * NOT_SUPPORTED	挂起事务	            非事务执行	    禁止事务场景
 * NEVER	        抛出异常	            非事务执行	    严禁事务
 * MANDATORY	    加入事务	            抛出异常	        强制必须有事务
 */
public interface LogService {
    //propagation设置事务属性：传播行为设置为当前操作需要新事务
    @Transactional(propagation = Propagation.REQUIRES_NEW)
    void log(String out, String in, Double money);
}
